package lib

import (
	"github.com/gomodule/redigo/redis"
	"app/conf"
	"time"
)
//var c redis.Conn
//func InitRedis()  {
//	var err error
//	c, err = redis.Dial("tcp", conf.REDISIP+":"+conf.REDISPORT)
//	if err != nil {
//		fmt.Println(err)
//		return
//	}
//}
var (
	//定义常量
	RedisClient *redis.Pool
	REDIS_HOST string
	REDIS_PORT string
	REDIS_PWD string
	REDIS_DB int
)

func InitRedis() {
	//从配置文件中获取redis的ip以及db
	REDIS_HOST = conf.REDISIP
	REDIS_PORT = conf.REDISPORT
	REDIS_PWD = conf.REDISPWD
	// 建立连接池
	RedisClient = &redis.Pool{

		// 从配置文件获取maxidle以及maxactive，取不到则用后面的默认值
		MaxIdle:     100,
		MaxActive:   1024,
		IdleTimeout: 180 * time.Second,
		Dial: func() (redis.Conn, error) {
			redis.DialPassword(REDIS_PWD)
			c, err := redis.Dial("tcp", REDIS_HOST+":"+REDIS_PORT,)
			if err != nil {
				return nil, err
			}
			if REDIS_PWD!=""{
				c.Do("AUTH", REDIS_PWD)
			}
			// 选择db
			//c.Do("SELECT", REDIS_DB)
			return c, nil
		},
	}
}

func GetRedis()(redis.Conn) {
	c := RedisClient.Get()
	return c
}